from time import sleep
import unittest
from selenium import webdriver
from selenium.webdriver.common.by import By

class MyTestCase(unittest.TestCase):

    @classmethod
    def setUpClass(cls):
        #整个测试类只会执行一次
        print('setupclass')
        #一般会把driver放到setUpClass中，因为这样可以减少打开和关闭浏览器的次数
        cls.driver = webdriver.Chrome()
        cls.driver.get('https://www.baidu.com')
        cls.driver.maximize_window()

    @classmethod
    def tearDownClass(cls):
        #整个测试类只会执行一次
        print('tearDownClass')    
        cls.driver.quit()

    #setUp是每个测试用例执行之前都会执行
    def setUp(self) -> None:
        print('setUp')
    #tearDown是每个测试用例执行之后都会执行
    def tearDown(self) -> None:
        print('tearDown')    

    def test_01(self):
        print('test_01')
        #这个是unittest自带的断言方法
        self.assertEqual(True, True)
 
    def test_02(self):
        print('test_02')
        self.assertGreater(5, 4)
        self.assertIn(10,[1,2,3,4])

    def test_03(self):
        self.driver.find_element(By.ID,'kw').send_keys('python')
        sleep(10)

    def aaa(self):
        print('这里不会执行，因为它不是test开头')        

if __name__ == '__main__':
    #最简单的执行方式，直接点运行就可以了
    unittest.main()        